home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
mint
/
editors
/
mjovesrc.zoo
/
ctype.h
< prev
next >
Wrap
C/C++ Source or Header
|
1991-06-16
|
2KB
|
53 lines
/***************************************************************************
* This program is Copyright (C) 1986, 1987, 1988 by Jonathan Payne. JOVE *
* is provided to you without charge, and with no warranty. You may give *
* away copies of JOVE, including sources, provided that this notice is *
* included in all the files. *
***************************************************************************/
#define C_UPPER 01 /* UPPER case */
#define C_LOWER 02 /* LOWER case */
#define C_DIGIT 04 /* DIGIT */
#define C_PUNCT 010 /* PUNCTuation */
#define C_CTRL 020 /* ConTRoL */
#define C_WORD 040 /* WORD */
#define C_BRA 0100 /* open BRAket */
#define C_KET 0200 /* close braKET */
extern const unsigned char *SyntaxTable; /* CharTable[?] */
#define jiswhite(c) (jisspace(c))
#define jisword(c) (SyntaxTable[c]&C_WORD)
#define jisalpha(c) (SyntaxTable[c]&(C_UPPER|C_LOWER))
#define jisupper(c) (SyntaxTable[c]&C_UPPER)
#define jislower(c) (SyntaxTable[c]&C_LOWER)
#define jisdigit(c) (SyntaxTable[c]&C_DIGIT)
#define jisspace(c) ((c) == ' ' || (c) == '\t')
/* #define jispunct(c) (SyntaxTable[c]&C_PUNCT) */
#define has_syntax(c,s) (SyntaxTable[(c)&CHARMASK]&(s))
/* #define toascii(c) ((c)&CHARMASK) */
#define jiscntrl(c) ((CharTable[0][c&CHARMASK])&C_CTRL)
#define jisopenp(c) ((CharTable[0][c&CHARMASK])&C_BRA)
#define jisclosep(c) ((CharTable[0][c&CHARMASK])&C_KET)
#ifdef ASCII7
# define jtolower(c) ((c)|040)
#else /* !ASCII7 */
extern char jtolower proto((int /*char*/));
#endif /* !ASCII7 */
#define WITH_TABLE(x) \
{ \
const unsigned char *push = SyntaxTable; \
SyntaxTable = CharTable[(x)];
#define END_TABLE() \
SyntaxTable = push; \
}
extern const unsigned char CharTable[NMAJORS][NCHARS];
extern const char RaiseTable[NCHARS];
#define CharUpcase(c) (RaiseTable[c])